Находит все простые числа от 1 до N — быстро, эффективно и без перебора делителей.
▪️ Создаём массив от 2 до N
▪️ Берём первое невычеркнутое число p
▪️ Вычеркиваем все кратные p
▪️ Переходим к следующему невычеркнутому числу
▪️ Повторяем, пока p² <= N
Пример на Python:
def eratosthenes(n):
sieve = [True] * (n+1)
sieve[0:2] = [False, False]
for i in range(2, int(n**0.5) + 1):
if sieve[i]:
for j in range(i*i, n+1, i):
sieve[j] = False
return [i for i, prime in enumerate(sieve) if prime]
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы слышали про деревья решений, но не понимаете, зачем из них делают целый лес — вот схема, чтобы всё стало на свои места. Random Forest — это ансамбль из деревьев, который работает лучше, чем каждое по отдельности.
Step 1: Bootstrap-агрегация (bagging)
└📦 Берём случайные подмножества данных
└📦 Тренируем дерево на каждом из них
└📦 Повторяем N раз
Step 2: Построение деревьев
└📦 На каждой вершине выбираем случайный поднабор признаков
└📦 Выбираем лучший сплит
└📦 Растим дерево до конца (без обрезки)
└📦 Повторяем для всех подмножеств
Step 3: Коллективное решение
└📦 Все деревья делают предсказания
└📦 Классификация: голосуем большинством
└📦 Регрессия: считаем среднее
👉 Что важно:
— Каждое дерево «слепо» и нестабильно, но лес — устойчив
— Метод борется с переобучением
— Работает хорошо даже без тюнинга
— Обожают за explainability (важность признаков и out-of-the-box визуализацию)
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Самая грустная история из одного слова, от которого плачут все AI-разработчики
Только 1 слово. Только хардкор.
Пишите свой вариант в комменты👇
Proglib Academy #развлекалово
Только 1 слово. Только хардкор.
Пишите свой вариант в комменты👇
Proglib Academy #развлекалово
На собесе мы оцениваем компанию не меньше, чем она — нас. И вот чеклист, по которому сразу видно: тут уважают специалистов и не будут устраивать цирк.
👉 Что внутри статьи
— Как формулируют обязанности, чтобы ты понимал, куда идешь
— Что значит здоровый испытательный срок
— Какие формулировки про график реально работают
— Как выглядит прозрачная информация о ЗП
— Что пишут про стек и команду, если всё по-честному
Это статья, которую стоит держать под рукой перед тем, как отвечать на оффер. Или перед тем, как составлять его, если ты HR.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот основные блоки, к которым стоит подготовиться:
✓ JOIN’ы, GROUP BY, оконные функции
✓ Подзапросы и CTE
✓ A/B-анализ в SQL
✓ Запросы на оптимизацию и масштабируемость
✓ Группировки, агрегации, merge
✓ Работа с датами и строками
✓ Feature engineering руками
✓ Детект пропусков и аномалий
✓ Алгоритмы: регрессии, деревья, бустинги
✓ Метрки: ROC AUC, RMSE, logloss
✓ Пайплайны и кросс-валидация
✓ Интерпретация моделей и фичей
✓ Формулировка гипотез
✓ Выбор метрик
✓ Статистическая значимость (t-test, U-test)
✓ Ошибки 1 и 2 рода, power analysis
✓ Решения оформлять в Jupyter
✓ Комментарии к коду и шагам
✓ Отдельный README или блок «как запускать»
✓ Данные — по возможности в .csv, .zip, Google Drive
Если вы можете не просто решить, а объяснить почему именно так — это уже middle, а не junior.
Proglib Academy #оффер_мечты
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда код становится нечитаемым, проект сложно поддерживать, а новые фичи ломают старые — скорее всего, нарушены принципы архитектуры. Один из самых мощных наборов таких принципов — SOLID.
Каждый класс должен отвечать только за одну вещь.
Пример: если класс парсит JSON и пишет в базу — это две ответственности, значит, пора разбить.
Код открыт для расширения, но закрыт для изменения.
Пример: добавление новой фичи не должно требовать переписывания старого кода — лучше через интерфейс или абстракцию.
Подклассы должны работать вместо родительских, не ломая логику.
Пример: если унаследованный класс внезапно бросает исключения или ведёт себя иначе — нарушен LSP.
Много маленьких интерфейсов лучше одного большого.
Пример: не заставляйте класс реализовывать методы, которые ему не нужны.
Зависимости строятся на абстракциях, а не на конкретных реализациях.
Пример: не завязывайтесь на конкретный класс базы данных — работайте через интерфейс, который можно заменить.
SOLID — это основа хорошей архитектуры, которую стоит освоить как можно раньше.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы ответил 2 — это ловушка
def func(a, b):
res = a + b
res = func(1, 1)
print(res)
На первый взгляд кажется, что res = 2. Но нет.
1. Функция func(a, b) складывает a + b и сохраняет в переменную res внутри функции.
2. Но! Функция ничего не возвращает. В Python по умолчанию любая функция без return возвращает None.
3. Следовательно, res = func(1, 1) присваивает None.
4. На экран выводится None.
📎 Пост с задачей
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы начинаете учить JavaScript или уже пишете, но забываете синтаксис RegExp, методы массива или Date, держите в закладках — шпаргалка от Cheatography.
PDF на 2 страницы: удобно распечатать, удобно держать в открытой вкладке.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥹 Выбираем работу мечты по вакансии
В карточках рассказали, на что стоит обращать внимание в вакансиях — если вы это нашли, значит, отправить отклик точно стоит.
✅ Еще больше грин-флагов — в нашей статье: https://proglib.io/sh/TycptNOYvf
Proglib Academy #оффер_мечты
В карточках рассказали, на что стоит обращать внимание в вакансиях — если вы это нашли, значит, отправить отклик точно стоит.
Proglib Academy #оффер_мечты
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хотите разобраться, как алгоритмы поиска в глубину и поиска в ширину работают на практике, то вот минимальный пример, который покажет разницу.
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [], 'E': [], 'F': []
}
def dfs(node, visited=set()):
if node in visited: return
print(node)
visited.add(node)
for neighbor in graph[node]:
dfs(neighbor, visited)
def bfs(start):
queue = [start]
visited = set()
while queue:
node = queue.pop(0)
if node in visited: continue
print(node)
visited.add(node)
queue += graph[node]
— dfs проходит глубоко: A → B → D → E → C → F
— bfs — по уровням: A → B → C → D → E → F
— Обе функции показывают порядок обхода графа
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Как устроены AI-модели для работы с изображениями
На схеме выше — карта различных подходов к пониманию изображений искусственным интеллектом. Давайте разберемся, что здесь к чему.
📍Ось Recognition: чем левее модель, тем хуже она распознает объекты
📍Ось Localization: чем левее модель, тем хуже она распознает местоположние объекта
А теперь напальцах моделях:
• SAM — отлично знают ГДЕ, но не знают ЧТО
• SEEM/DINO — неплохо определяют положение, базово распознают объекты
• CLIP/BLIP — знают ЧТО видят, но не всегда точно ГДЕ это находится
• RAM — универсальный солдат, который знает и ЧТО, и ГДЕ
🔗 Подробнее об универсальном солдате — в статье
🔵 Чтобы получить оффер-мечты в Data Science, забирайте наш курс → «Математика для Data Science»
Proglib Academy #буст
На схеме выше — карта различных подходов к пониманию изображений искусственным интеллектом. Давайте разберемся, что здесь к чему.
📍Ось Recognition: чем левее модель, тем хуже она распознает объекты
📍Ось Localization: чем левее модель, тем хуже она распознает местоположние объекта
А теперь на
• SAM — отлично знают ГДЕ, но не знают ЧТО
• SEEM/DINO — неплохо определяют положение, базово распознают объекты
• CLIP/BLIP — знают ЧТО видят, но не всегда точно ГДЕ это находится
• RAM — универсальный солдат, который знает и ЧТО, и ГДЕ
🔗 Подробнее об универсальном солдате — в статье
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Почему в одной компании пишут в Notion, а в другой делают PPT на 47 слайдов
Разберёмся, как культура в IT-компаниях меняет твою работу (и психику).
🔹 1. Кремниевая долина: «move fast and break things»
— Минимум процессов, максимум доверия.
— Упор на результат, а не отчёты.
— Документация — в Notion, а не в .docx с подписями.
— Худи, лаптоп, 100% remote — и никто не следит за часами.
👉 Типичный фидбэк на факап: «Что выучил? Отлично. Продолжай.»
🔹 2. Российские корпорации: «сначала согласуй, потом сделай»
— Каждый чих — в почте с копией начальника.
— Презентации на 40 слайдов «для визибилити».
— Контроль вместо доверия.
— Важнее выглядеть занятым, чем что-то реально сделать.
👉 Фидбэк: «А где ты согласовал это с департаментом методологии?»
Proglib Academy #развлекалово
Разберёмся, как культура в IT-компаниях меняет твою работу (и психику).
🔹 1. Кремниевая долина: «move fast and break things»
— Минимум процессов, максимум доверия.
— Упор на результат, а не отчёты.
— Документация — в Notion, а не в .docx с подписями.
— Худи, лаптоп, 100% remote — и никто не следит за часами.
👉 Типичный фидбэк на факап: «Что выучил? Отлично. Продолжай.»
🔹 2. Российские корпорации: «сначала согласуй, потом сделай»
— Каждый чих — в почте с копией начальника.
— Презентации на 40 слайдов «для визибилити».
— Контроль вместо доверия.
— Важнее выглядеть занятым, чем что-то реально сделать.
👉 Фидбэк: «А где ты согласовал это с департаментом методологии?»
Proglib Academy #развлекалово